home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / g_man / cat3 / standard / polysmooth.z / polysmooth
Text File  |  1998-10-20  |  8KB  |  133 lines

  1.  
  2.  
  3.  
  4. ppppoooollllyyyyssssmmmmooooooootttthhhh((((3333GGGG))))                                                  ppppoooollllyyyyssssmmmmooooooootttthhhh((((3333GGGG))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ppppoooollllyyyyssssmmmmooooooootttthhhh - specify antialiasing of polygons
  10.  
  11. CCCC SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCAAAATTTTIIIIOOOONNNN
  12.      vvvvooooiiiidddd ppppoooollllyyyyssssmmmmooooooootttthhhh((((lllloooonnnngggg mmmmooooddddeeee))))
  13.  
  14. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  15.      _m_o_d_e   Expects one of the symbolic constants:
  16.  
  17.             PPPPYYYYSSSSMMMM____OOOOFFFFFFFF:  do not antialias polygons.  (default)
  18.  
  19.             PPPPYYYYSSSSMMMM____OOOONNNN:  compute coverage values for all perimeter polygon pixels
  20.             in such a way as to not change the size of the polygon.
  21.  
  22.             PPPPYYYYSSSSMMMM____SSSSHHHHRRRRIIIINNNNKKKK:  Compute coverage values for all perimeter polygon
  23.             pixels in such a way as to shrink the polygon slightly.
  24.  
  25. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  26.      ppppoooollllyyyyssssmmmmooooooootttthhhh specifies one-pass antialiasing of polygons.  Unlike ppppnnnnttttssssmmmmooooooootttthhhh
  27.      and lllliiiinnnneeeessssmmmmooooooootttthhhh, it is available only in RGB mode.  Also, unlike ppppnnnnttttssssmmmmooooooootttthhhh
  28.      and lllliiiinnnneeeessssmmmmooooooootttthhhh, its use in complex scenes requires attention to primitive
  29.      drawing order if acceptable results are to be achieved.  Thus ppppoooollllyyyyssssmmmmooooooootttthhhh
  30.      use is somewhat more complex than that of ppppnnnnttttssssmmmmooooooootttthhhh and lllliiiinnnneeeessssmmmmooooooootttthhhh.
  31.  
  32.      Like points and lines, polygons are antialiased by computing a coverage
  33.      value for each scan-converted pixel, and using this coverage value to
  34.      scale pixel alpha.  Thus, for RGB antialiased polygons to draw correctly,
  35.      bbbblllleeeennnnddddffffuuuunnnnccccttttiiiioooonnnn must be set to merge new pixel color components with the
  36.      previous components using the incoming alpha.  In the simplistic case of
  37.      adding a single, antialiased polygon to a previously rendered scene, the
  38.      same bbbblllleeeennnnddddffffuuuunnnnccccttttiiiioooonnnn as is typically used for point and line antialiasing
  39.      can be used:
  40.  
  41.           bbbblllleeeennnnddddffffuuuunnnnccccttttiiiioooonnnn((((BBBBFFFF____SSSSAAAA,,,, BBBBFFFF____MMMMSSSSAAAA)))).
  42.  
  43.      Pixels in the interior of the polygon will have coverage assigned to 1.0,
  44.      and will therefore replace their framebuffer counterparts.  Pixels on the
  45.      perimeter of the polygon are blended into the framebuffer in proportion
  46.      to their computed coverage.
  47.  
  48.      A more typical case, however, is that of antialiasing the polygons that
  49.      comprise the surface of a solid object.  Here the standard bbbblllleeeennnnddddffffuuuunnnnccccttttiiiioooonnnn
  50.      will result in 'leakage' of color between adjacent polygons.  For
  51.      example, if the first polygon drawn covers a sample pixel 40%, and the
  52.      second (adjacent) polygon covers the pixel 60%, the net coverage of %100
  53.      still leaves %24 background color in the pixel.
  54.  
  55.      If the solid object is to be correctly antialiased, with no leakage
  56.      through interior edges, and with proper silhouettes, the following rules
  57.      must be followed:
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ppppoooollllyyyyssssmmmmooooooootttthhhh((((3333GGGG))))                                                  ppppoooollllyyyyssssmmmmooooooootttthhhh((((3333GGGG))))
  71.  
  72.  
  73.  
  74.      1.   Polygons must be drawn in view order from nearest to farthest.  (Not
  75.           farthest to nearest as is done with transparency.)
  76.  
  77.      2.   Polygons that face away from the viewer must not be drawn.  (Use
  78.           backface(TRUE).)
  79.  
  80.      3.   The special blendfunction(BF_MIN_SA_MDA, BF_ONE) must be used to
  81.           blend polygons into the framebuffer.
  82.  
  83.      4.   Polysmooth mode PPPPYYYYSSSSMMMM____OOOONNNN must be used.
  84.  
  85.      The special polysmooth mode PPPPYYYYSSSSMMMM____SSSSHHHHRRRRIIIINNNNKKKK specifies a coverage algorithm
  86.      that includes only pixels that would have been scan-converted had the
  87.      mode been PPPPYYYYSSSSMMMM____OOOOFFFFFFFF.  (PPPPYYYYSSSSMMMM____OOOONNNN includes pixels that are outside that range
  88.      of those point-sampled by the PPPPYYYYSSSSMMMM____OOOOFFFFFFFF algorithm.)  PPPPYYYYSSSSMMMM____SSSSHHHHRRRRIIIINNNNKKKK
  89.      necessarily leaks background color between adjacent polygons, but does
  90.      this in a way that resembles antialiased lines.  Thus, PPPPYYYYSSSSMMMM____SSSSHHHHRRRRIIIINNNNKKKK can be
  91.      used in conjunction with blendfunction(BF_SA, BF_ZERO),,,, aaaannnndddd wwwwiiiitttthhhh nnnnoooo
  92.      ssssoooorrrrttttiiiinnnngggg ooooffff ppppoooollllyyyyggggoooonnnnssss ((((uuuusssseeee tttthhhheeee zzzz----bbbbuuuuffffffffeeeerrrr)))),,,, ttttoooo ggggeeeennnneeeerrrraaaatttteeee ssssoooolllliiiidddd iiiimmmmaaaaggggeeeessss
  93.      tttteeeesssssssseeeellllaaaatttteeeedddd wwwwiiiitttthhhh bbbbllllaaaacccckkkk,,,, aaaannnnttttiiiiaaaalllliiiiaaaasssseeeedddd lllliiiinnnneeeessss....
  94.  
  95. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  96.      linesmooth, pntsmooth, blendfunction, subpixel
  97.  
  98. NNNNOOOOTTTTEEEESSSS
  99.      IRIS-4D G, GT, and GTX models, as well as the Personal Iris, Iris Entry,
  100.      Indy, XL, XS, XS24, XZ, Elan, and Extreme systems do not support
  101.      ppppoooollllyyyyssssmmmmooooooootttthhhh.  Use ggggeeeettttggggddddeeeesssscccc to determine whether ppppoooollllyyyyssssmmmmooooooootttthhhh is supported.
  102.  
  103.      ssssuuuubbbbppppiiiixxxxeeeellll mode should always be enabled while ppppoooollllyyyyssssmmmmooooooootttthhhh is used.
  104.  
  105.      On the IRIS-4D RealityEngine pixels that are outside of the perimeter of
  106.      the polygon may be drawn.  However, their coverage values will be 0.0.
  107.  
  108. BBBBUUUUGGGGSSSS
  109.      IRIS-4D VGX models reveal their decomposition of 4+ sided polygons into
  110.      triangles when PPPPYYYYSSSSMMMM____SSSSHHHHRRRRIIIINNNNKKKK is selected.  This behavior is not intended,
  111.      and may not be duplicated by future VGX software releases, or by future
  112.      models.
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.